import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;


import java.awt.List;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.HashMap;
import java.util.HashSet;

import javax.swing.SwingConstants;

/*
 * Fenetre de consultation de documents via une recherche par Mot-Clef(s)
 * @author GALAVIELLE
 */
public class VueRechercheMotClef extends Vue {
	
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField textFieldIdAuteur;
	private List listeMotClefs;
	private List listeOuvrages;
	private List listeArticles;
	private Auteur[] _auteurs;
	/*private Ouvrage _ouvrage;
	private Article _article;*/
	
	// pour que les boutons soient des attributs, il faut faire "convert local to field"
	private JButton buttonRech;
	private JButton buttonAnnuler;
	private JButton buttonFermer;
	
	public VueRechercheMotClef(Controleur controleur) {
		super(controleur);
		setTitle("Recherche par mot-clé(s)");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
		setBounds(100, 100, 400, 470);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		
		JLabel lblAuteur = new JLabel("Choisir mot-clé(s)");
		lblAuteur.setBounds(25, 30, 119, 15);
		contentPane.add(lblAuteur);
	
	//	listeMotClef();

		buttonAnnuler = new JButton("Annuler");
		buttonAnnuler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueRechercheMotClef.this);}
			});
		buttonAnnuler.setBounds(25, 120, 110, 25);
		contentPane.add(buttonAnnuler);
		
		buttonRech = new JButton("Rechercher");
		buttonRech.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Auteur[] auteurSelect = _auteurs;				
				//getControleur().rechercheDocuments(auteurSelect);
			}
		});
		buttonRech.setBounds(257, 120, 110, 25);
		contentPane.add(buttonRech);
		
	    
		
		JLabel lblAuteur1 = new JLabel();
		lblAuteur1.setHorizontalAlignment(SwingConstants.RIGHT);
		lblAuteur1.setBounds(18, 165, 100, 15);
		contentPane.add(lblAuteur1);
		
		JLabel lblOuvrage = new JLabel("Les ouvrages");
		lblOuvrage.setHorizontalAlignment(SwingConstants.RIGHT);
		lblOuvrage.setBounds(25, 187, 85, 15);
		contentPane.add(lblOuvrage);
		
		listeOuvrages();
		
		JLabel lblArticle = new JLabel("Les articles");
		lblArticle.setHorizontalAlignment(SwingConstants.RIGHT);
		lblArticle.setBounds(12, 302, 85, 15);
		contentPane.add(lblArticle);
		
		listeArticles();
				
		buttonFermer = new JButton("Fermer");
		buttonFermer.setEnabled(false);
		buttonFermer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueRechercheMotClef.this);}
		});
		buttonFermer.setBounds(150, 400, 100, 25);
		contentPane.add(buttonFermer);
		
		JButton btnVoir = new JButton("Voir");
		btnVoir.setBounds(299, 266, 68, 25);
		contentPane.add(btnVoir);
		
		}
	
//	public void listeMotClef(){
//		HashMap<Integer, MotClef> _motclef;		
//		_motclef = getControleur().getMotClefs();		
//		listeMotClefs = new List();
//		if(this.getControleur().getMotClefs()!=null){
//			for(int i=1;i<_motclef.size();i++){
//				listeMotClefs.add(_motclef.get(i).getMotClef());
//			}
//		}
//		listeMotClefs.setBounds(150, 20, 217, 80);		
//		contentPane.add(listeMotClefs);
//	}
		
	public void listeOuvrages(){
		HashMap<String, Ouvrage> _ouvrages;
		_ouvrages = getControleur().getOuvrages();		
		listeOuvrages = new List();	
		if(this.getControleur().getOuvrages()!=null){
			for(int i=1;i<_ouvrages.size();i++){
				listeOuvrages.add(_ouvrages.get(i).getIsbn()+" "+_ouvrages.get(i).getTitre()+" "+_ouvrages.get(i).getEditeur());
			}
		}
		listeOuvrages.setBounds(150,180, 217, 80);		
		contentPane.add(listeOuvrages);
	}
	
	public void listeArticles(){
		//HashMap<Integer, Article> _article;		
		//_article = this.getControleur().getArticles();		
		listeArticles = new List();	
		if(this.getControleur().getArticles()!=null){
			for(Article a : this.getControleur().getArticles().values()){
				listeArticles.add(a.getParution().getPeriodique().getIssn()+" "+a.getTitre()+" " +
					" "+a.getParution().getNum()+" "+a.getPageDebut());
			}
		}
		listeArticles.setBounds(150, 297, 217, 80);		
		contentPane.add(listeArticles);
	}
}
